import json
from pandas import DataFrame
from .MongoClientInstance import MongoInst


class Db:
    """
    Attributes:
        conn 数据库对象
        main_collection 需要操控的集合
    """
    __collection = ''

    '''
        @:param collection 需要操控的主集合
    '''

    def __init__(self, collection: str):
        self.__collection = MongoInst.get_instance()[collection]

    '''
        将DataFrame的数据存储到数据库中
        @:param data_list {pandas: DataFrame} 需要存储的列表
        @:param table {MongoDB: table} 需要存储到的表
    '''
    def insert_many(self, data_list: DataFrame):
        self \
            .__collection \
            .insert_many(json \
                         .loads(data_list.T.to_json()) \
                         .values())

    def insert_one(self, data_list):
        self \
            .__collection \
            .insert_one(data_list)
